﻿//977. 有序数组的平方
//给你一个按 非递减顺序 排序的整数数组 nums，返回 每个数字的平方 组成的新数组，要求也按 非递减顺序 排序。


class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums)
    {
        int n = nums.size();
        vector<int> ret(n);
        int k = n - 1;
        int left = 0, right = n - 1;
        while (left <= right)
        {
            int leftnum = nums[left] * nums[left];
            int rightnum = nums[right] * nums[right];
            if (rightnum >= leftnum)
            {
                ret[k--] = rightnum;
                right--;
            }
            else
            {
                ret[k--] = leftnum;
                left++;
            }
        }
        return ret;
    }
};